// logs.js
// const util = require('../../utils/util.js')

// 登录流程
// 1、收集表单项数据
// 2、前端验证
//    a、验证用户信息（账号密码）是否合法
//    b、前端验证不通过提示用户，不需要发送请求给后端
//    c、前端验证通过，发请求（携带账号，密码）给服务器端
// 3、后端验证
//    a、验证用户是否存在
//    b、用户不存在直接返回，告诉前端用户不存在
//    c、用户存在需要验证密码是否正确
//    d、密码不正确返回前端提示密码不正确
//    e、密码正确返回前端数据，提示用户登录成功（会携带用户的相关信息）
let date = 60
let windowWidth = 0
Page({
  data: {
    eleif: true,
    phone: '', // 手机号
    password: '', // 密码,
    captcha: '', //短信
    dxText: '获取验证码',
  },
  onLoad() {
    // 获取可使用窗口宽度
    windowWidth = wx.getSystemInfoSync().windowWidth
  },
  // 表单项内容发生改变的回调
  handleInput(event) {
    // let type = event.currentTarget.id; // id传值 取值 phone || password
    // console.log(event);
    let type = event.currentTarget.dataset.type // data-key=value 传值   用data-key形式可以传多个数据 而id是唯一的
    // console.log(type, event.detail.value);
    this.setData({
      // type是变量，对象里面操作属性用中括号
      [type]: event.detail.value,
    })
  },
  // 密码登录
  async login() {
    let { phone, password } = this.data
    // 前端验证数据
    if (!phone) {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none',
      })
      return
    }
    if (!password) {
      wx.showToast({
        title: '密码不能为空!',
        icon: 'none',
      })
      return
    }
    let phtest = /^1[3-9]\d{9}$/
    if (phtest.test(password)) {
      wx.showToast({
        title: '手机号格式不正确!',
        icon: 'none',
      })
      return
    }
    let requestData = await wx.$http.get('/login/cellphone', {
      phone,
      password,
      isLogin: true,
    })
    switch (requestData.code) {
      case 200:
        // wx.setStorageSync('userInfo', JSON.stringify(requestData.profile));
        wx.setStorageSync('userInfo', requestData.profile)
        wx.showToast({
          title: '登录成功',
        })
        setTimeout(() => {
          wx.reLaunch({
            url: '/pages/personal/personal',
          })
        }, 1500)
        break
      case 502 || 400:
        wx.showToast({
          title: requestData.msg,
          icon: 'none',
        })
        break
      default:
        wx.showToast({
          title: '登录失败',
          icon: 'none',
        })
        break
    }
  },
  // 获取验证码
  async yzmTap() {
    // 计时开始就不能发送第二次
    if (date < 60) return
    // 判断手机号
    let { phone } = this.data
    if (!phone) {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none',
      })
      return
    }
    // 请求验证码发送
    let httpdata = await wx.$http.get('/captcha/sent', { phone })
    // console.log(httpdata)
    let { data } = httpdata
    // 验证码发送成功，倒计时开始   60秒
    if (data) {
      // 倒计时
      let setItal = setInterval(() => {
        this.setData({
          dxText: date,
        })
        date--
        // 倒计时等于0  关闭倒计时
        if (date === 0) {
          clearInterval(setItal)
          this.setData({
            dxText: '获取验证码',
          })
          date = 60
        }
      }, 1000)
    }
  },
  // 验证码登录验证
  async dxLogin() {
    let { phone, captcha } = this.data
    let httpdata = await wx.$http.get('/captcha/verify', { phone, captcha })
    if (httpdata.data) {
      wx.showToast({
        title: '验证成功登录不了',
        icon: 'success',
      })
    }
  },
  // 切换登录模式
  dxqueHuan() {
    this.setData({
      eleif: !this.data.eleif,
    })
  },
})
